int c = 2;

struct block {
    int a;
};

//void do_print(int i, int *arr);

int helper(int c, int  d) {
    int balls = c+d+c;

    return balls;
}

int do_print(int i, int *arr) {
    printf("Printing %d\n",i);
    return helper(i, i);
}

void ptr_func(int *p) {
    *p = 3;
    p = (int *)0;
    *p = *p;
}


void ptr_struct_func(struct block *st_ptr) {
    (*st_ptr).a = 0;
}

int main(int argc, char **argv) {
    struct block s;
    struct block *boobs;
    int *ptr;
    int f, g, h;
    int d, b = 3;
    int result = 0;
    result += do_print(b, (int *)0);
    {
        int b = 2;
        result += do_print(b, (int *)0);
        result += do_print(c, (int *)0);
    }
    ptr_func(ptr);
    result += do_print(s.a, (int *)0);
    f = g + h + *ptr;
    ptr_struct_func(boobs);
    printf("%d\n",result);
    return 0;
}

